<?php
/**
Interface DAO de Ano. Estes m�todos N�O devem ser chamados diretamente.
Ao inv�s disso devem ser chamados por m�todos da classe Ano.
*/
/*function __autoload($class_name) {
    require_once $class_name . '.php';
}
  */
  
require_once("Ano.php");
require_once("DataAccess.php");

class AnoDAO
{
      private $database;

      public function __construct( )
      {
               $this->database = DataAccess::getConnection();
      }

      /**
     Esta fun��o � chamada pelo construtor de forma a automatizar o processo de inser��o de anos na tabela t_ano.
     Toda vez que a classe Ano for instanciada, este m�todo � chamado e faz uma consulta em t_ano para verificar se o ano passado como argumento est� cadastrado. Nesse caso, o ano que � passado como argumento � o ano atual que est� definido no servidor onde o PHP est� rodando.
     Caso n�o exista um registro para ele, ser� feita uma inser��o na tabela t_ano para o ano em quest�o. Caso contr�rio o m�todo n�o faz nada.
     @dataAtual - Ano atual obtido do servidor onde php est� rodando.
     */
      public function Save( $dataAtual )
      {
             $consulta = $this->database->Fetch(" SELECT * FROM t_ano WHERE ANO = '".$dataAtual."'");
             if( mysql_num_rows($consulta) == 0 )
             {
                 $consulta = $this->database->Fetch(" INSERT INTO t_ano(ano) VALUES('".$dataAtual."')");

             }

      }

     /**
     Busca por um registro na tabela t_ano que possua chave-prim�ria igual a $id.
     Caso um registro seja encontrado ser� criada uma inst�ncia de Ano com os valores das colunas do registro em quest�o.
     @id - chave-prim�ria do ano cadastrado no banco.
     @return - Retorna um objeto do tipo Ano. Caso n�o encontre nenhum registro retorna FALSE.
     */
      public function Load( $id )
      {
             $consulta = $this->database->Fetch(" SELECT * FROM t_ano WHERE ID = '".$id."'");
             if( $consulta != FALSE )
             {
                 $rows = $this->database->getRow();
                 $ano = new Ano();
                 $ano->id = $rows[0]['id'];
                 $ano->ano = $rows[0]['ano'];

                 return $ano;
             }
             else if( mysql_num_rows( $consulta ) == 0 )
             {
                 return FALSE;
             }
      }
      
      /**
     Busca por um registro na tabela t_ano que possua chave-prim�ria igual a $id.
     Caso um registro seja encontrado ser� criada uma inst�ncia de Ano com os valores das colunas do registro em quest�o.
     @return - Retorna um objeto do tipo Ano. Caso n�o encontre nenhum registro retorna FALSE.
     */
      public function LoadAll(  )
      {
              $consulta = $this->database->Fetch(" SELECT * FROM t_ano");
             if( $consulta != FALSE )
             {
                  $rows = $this->database->getRow();
                  $objetos = array();

                  for( $i = 0; $i < count($rows); $i++ )
                  {
                       $ano = new Ano();
                       $ano->id = $rows[$i]['id'];
                       $ano->ano = $rows[$i]['ano'];

                       $objetos[] = $ano;
                  }

                  return $objetos;
             }
             else if( mysql_num_rows( $consulta ) == 0 )
             {
                 return FALSE;
             }
      }

}

?>
